package com.tbit.uqbike.webmanager.business.maintain_performance.constant;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.tbit.uqbike.constant.FaultType;
import com.tbit.uqbike.constant.MachineAbnormalConstant;
import lombok.Getter;

/**
 * @author <a href="mailto:zheng.zebiao@tbit.com.cn">zb</a>
 * @since 2025/2/20
 */
@Getter
public enum PerformanceRuleType {
    /**
     * 基础
     */
    BASIC(0),
    /**
     * 时效
     */
    VALIDITY(1),
    /**
     * 时段
     */
    INTERVAL(2),
    /**
     * 低电优先
     */
    LOW_POWER(3),
    /**
     * 换电后电量
     */
    POWER_AFTER_CHANGE(4),
    /**
     * 站点优先级
     */
    STATION_PRIORITY(5),
    /**
     * 异常
     *
     * @see MachineAbnormalConstant
     */
    MACHINE_ABNORMAL(6),
    /**
     * 距离
     */
    DISTANCE(7),
    /**
     * 闲置时长
     */
    UNUSED_TIME(8),
    /**
     * 标签
     */
    MACHINE_TAG(9),
    /**
     * 维修类型
     *
     * @see FaultType
     */
    REPAIR_TYPE(10),
    /**
     * 时效和时段
     */
    INTERVAL_AND_VALIDITY(11),
    /**
     * 手工修改
     */
    MANUAL(12)
    ;

    @EnumValue
    private final int value;

    PerformanceRuleType(int value) {
        this.value = value;
    }
}
